package com.sia.springcloud.service;

/**
 * @Author: Sirius
 * @Date: 2022/1/2 12:55
 * @Description: 通信协议数采服务接口
 * 主要提供的接口：开启数采、关闭数采、写入变量
 **/
public interface ICollectService {
    /**
     * 开启指定Id的设备的数采任务
     *
     * @param deviceId 设备id
     * @return 返回是否开启
     * 如果返回true，说明开启数采成功
     * 如果返回false，说明开启数采失败
     */
    boolean startCollect(String deviceId);


    /**
     * 关闭某个设备的数采
     * 说明：基于尽力而为的原则（即使没有关闭也有心跳自检来进行补救）
     *
     * @param deviceId 设备id
     * @return 返回是否关闭
     * 如果返回true，已经走完了关闭数采的流程，尽力关闭了
     * 如果返回false，说明关闭数采的过程中发生了异常
     */
    boolean stopCollect(String deviceId);

    /**
     * 写变量
     * <p>
     * 暂未实现
     *
     * @param deviceId 设备id
     * @param value    需要写入的值
     * @return
     */
    String writeVariable(String deviceId, String value);

}
